sql command

Database SQL – Like Clause

เริ่มตั้งแต่ที่เราสามารถใช้งาน SQL Select query statement รวมถึงการใช้งานร่วมกับ Where Clause โดยอาศัย SQL Operator ต่างๆในการเปรียบเทียบข้อมูล ซึ่งหนึ่งในนั้นคือ LIKE operator ที่สามารถเปรียบเทียบข้อมูลกับตัวแปร ในลักษณะที่ข้อมูลหนึ่ง เป็นส่วนประกอบ (contain) ของอีกข้อมูลหนึ่งหรือไม่ เช่น คำว่า “DAY” เป็นส่วนประกอบภายใต้คำว่า “TODAY” เราสามารถเอา Like clause มาใช้ทำการเปรียบเทียบแบบนี้ได้ โดยหลักการ widecard ซึ่งมีด้วยกัน 2 แบบคือ

  • Percent (%) มีค่าเท่ากับตัวอักษรอะไรก็ได้ และจำนวนกี่ตัวก็ได้
  • Underscore (_) มีค่าเท่ากับตัวอักษรอะไรก็ได้ เพียงแค่ 1 ตัว

 

รูปแบบ (Syntax)

การนำเอา LIKE operator มาใช้งาน เราจะใช้ Percent (%) หรือ Underscore (_) เป็นตัวระบุค่า widecard

SELECT FROM table_name
WHERE column LIKE 'XXXX%'

or 

SELECT FROM table_name
WHERE column LIKE '%XXXX%'

or

SELECT FROM table_name
WHERE column LIKE 'XXXX_'

or

SELECT FROM table_name
WHERE column LIKE '_XXXX'

or

SELECT FROM table_name
WHERE column LIKE '_XXXX_'

ค่า XXX สามารถเป็นได้ทั้งข้อมูลตัวเลข หรือ ตัวอักษณ ก็ได้ รวมถึงเราสามารถนำเอา AND OR Clause มาเพิ่มเงือนไขได้ด้วย

 

ตัวอย่างการใช้ LIKE Clause

LIKE Clause Description
  WHERE SALARY LIKE ‘200%’   ค้นหาข้อมูลที่ขึ้นต้นด้วย 200
  WHERE SALARY LIKE ‘%200%’   ค้นหาข้อมูลที่มีส่วนประกอบ 200
  WHERE SALARY LIKE ‘_00%’   ค้นหาข้อมูลที่ขึ้นต้นด้วนอะไรก็ได้ 1 ตัว แล้วตามด้วย 00
  WHERE SALARY LIKE ‘2_%_%’   ค้นหาข้อมูลที่ขึ้นต้นด้วย 2 และข้อมูลต้องมีอย่างน้อย 3 ตัวอักษรขึ้นไป
  WHERE SALARY LIKE ‘%2’   ค้นหาข้อมูบที่ลงท้ายด้วย 2
  WHERE SALARY LIKE ‘_2%3’   ค้นหาข้อมูลที่ตัวอักษรตัวที่ 2 มีค่าเท่ากับ 2 และ ลงท้ายด้วย 3
  WHERE SALARY LIKE ‘2___3’   ค้นหาข้อมูลที่ขึ้นต้นด้วย 2 และ ลงท้ายด้วย 3 ข้อมูลทั้งหมดรวมกันต้องมี 5 ตัวอีกษร

 

ตัวอย่างข้อมูลใน table CUSTOMERS

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

 

คำสั่งแสดงข้อมูลบน table CUSTOMER สำหรับข้อมูลที่มี SALARY ขึ้นต้นด้วย 200

SQL> SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '200%';

 

ผลลัพธ์ที่ได้ จะเห็นว่าบรรทัดที่ 1 และ 3 ที่ SALARY ขึ้นต้นด้วย 200 หรือก็คือมีค่าเป็น 2000

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
+----+----------+-----+-----------+----------+

 

 

Reference:

รวมคำสั่ง SQL Command พื้นฐานเบื้องต้น

Database, Oracle, MySQL

 

 

Author: Suphakit Annoppornchai

Credit: https://saixiii.com, https://www.tutorialspoint.com

One Thought to “Database SQL – Like Clause คือ การเปรียบเทียบค่าแบบส่วนประกอบ”

Leave a Reply